Formulas

Use inputs and outputs possibly together with mathematical and/or logical functions to define objectives and constraints for the optimization. The objectives are used as measures of how good a certain solution (set of input values) is and to direct the search among possible solutions towards better solutions (solutions that better fulfills the objectives).

Optimization, especially in commercial simulation softwares, has for a long time been limited to the use of only a single objective. In FACTS-Analyzer however the number of objectives can be practically unlimited. One significant difference between the single-objective optimization and multi-objective optimization (MOO) is that for the latter there will typically not be just a single global optimal solution but rather a set of optimal solutions, called Pareto-optimal solutions. Having a single global optimal solution isn't completely out of the question in MOOs given that the objectives aren't conflicting, however this is seldom the case. What characterize Pareto-optimal solutions is that for any one of those solutions there is no way to improve one objective without a deterioration in at least one other objective. Among the Pareto-optimal solutions one should be selected and that can't be done without input from a decision maker. The selected solution will be the one that best matches the preferences of the decision maker.1

Solving these MOO problems with single objective optimization would require the decision maker to before hand state his/her preferences with a lot less knowledge of the problem and especially its solutions. In this sense the use of several objectives are very convenient since it enables more informed decisions to be made. However when using several objectives one needs too consider the ease of which the results from these can be interpreted and analysed. A simple two-dimensional chart can present two objectives in a good way in terms of ease of interpretation. Three objectives can be presented in a three-dimensional chart and still be quite easily interpreted above that, 4 or more objectives, are much harder to interpret.

The image below shows the Formulas tab and beneath it are descriptions of how objectives, custom outputs and input constraint are formulated. Rows are added with the button at the respective panel and removed with the button of the corresponding row. The button in the header rows will delete all rows of the corresponding table.


Settings

The settings of the Objective functions tab shown above are listed below along with a short description and possibly a link to a more detailed description about the setting.

Setting

Description

Objectives

This is were all added objectives are listed with Name, Formula, and Goal. Once a new objective row have been added the objective itself must be defined by its columns:

Name-column: Custom name for the objective, entered by the user.

Formula-column: Contain the actual formula of the objective.

Use the parameters (Input Variables, Output Variables, and/or Functions) at the bottom of the dialog to formulate your objective in the Formula-column of the objective. These parameters are used either by drag n' drop or by simply typing their name in the Formula-column of the objective.

Goal-column: Contain the goal of the objective.

Select if the objective should be Minimized or Maximized from the drop-down-list in the Goal-column.

Custom Outputs

This is used to build your own custom outputs with Name and Formula. These custom outputs are added to the list of Output Variables and can be used as any other output with the exception that they can't be used to define other custom outputs.

By adding custom outputs calculated with complex expressions the overview of the optimization problem can be much better, e.g. these can divide a long objective formula into several inteligently named custom outputs and hence increase the readability (see the custom output Backlog in the example above). Once a new custom output row have been added the output itself must be defined by its columns:

Name-column: Custom name for the output, entered by the user.

Formula-column: Contain the actual formula of the custom output.

Use the parameters (Input Variables, Output Variables, and/or Functions) at the bottom of the dialog to formulate your custom outputs in the Formula-column of the custom output. These parameters are used either by drag n' drop or by simply typing their name in the Formula-column of the custom output.

Input Constraints

This is were all added constraints are listed with their Formula. Once a new constraint row have been added the constraint itself must be defined in the Formula-column.

Formula-column: Contain the actual formula of the objective.

Use the parameters (Input Variables and/or Functions) at the bottom of the display to formulate your constraint in the Formula-column of the constraint. These parameters are used either by drag n' drop or by simply typing their name in the Formula-column of the constraint.

Details of how for formulate constraints ('LHS=Left hand side' and 'RHS=Right hand side').

  • Linear constraints that can be repaired by the algorithm if it has a setting name 'Repair linear constraints=true'. The supported formats are:
    • LHS < RHS
    • LHS <= RHS
    • LHS == RHS
    • LHS >= RHS
    • LHS > RHS
  • Non-Linear or Linear constraints with a single formula (i.e. only LHS) without any inequality/equality (<,<=,==,>=,>) signs. The evaluation of the formula determines if the constraint is violated or not:
    • Evaluation < 0: Constraint is violated and the evaluated value contribute to the overall constraint violation of the solution.
    • Evaluation >= 0: Constraint is not violated and it have 0 contribution to overall constraint violation of the solution.

    Note: A solution without any constraint violation is always considered a better solution than one with a constraint violation. And, when comparing to infeasible solutions the one with the least constraint violation is considered the better one.

Input Variables:

List of all input variables added to the optimization problem in the Inputs/Outputs-tab. The input variables can be used to formulate objectives, custom outputs, and input constraints by drag n' drop or by typing their name in the Formula-column of the objective, custom output or input constraint.

Output Variables:

List of all output variables added to the optimization problem in the Inputs/Outputs-tab. The output variables can be used to formulate objectives and and custom outputs (Note: not input constraints) by drag n' drop or by typing their name in the Formula-column of the objective or custom output.

Functions:

List of all functions that can be used to formulate objectives, custom outputs, and input constraints. They are added by drag n' drop or by typing their name in the Formula-field of the objective, custom output or input constraint. Details of how they are used can be found under Functions.